-
Notifications
You must be signed in to change notification settings - Fork 4
feat: add server extension #758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🤖 Auto-Component Test Results🎉 No new UI components detected!This PR doesn't add any new buttons, menus, or clickable components. Triggered by @someCatInTheWorld • Commit |
🎉 MEGA PR Test & Analysis Complete!Hi @someCatInTheWorld! Your PR has been fully tested and analyzed! 🚀✨ 🌍 Test DeploymentLive Preview: https://OmniBlocks.github.io/scratch-gui/someCatInTheWorld/758/ 🧪 Test ResultsESLint: ✅ All checks passed! Unit Tests: ✅
Integration Tests: ❌
📄 Full test outputs available in artifacts 🔦 Performance Audit (Lighthouse)✅ Audit completed successfully! 📊 Lighthouse Scores:
⚡ Core Web Vitals:
🟢 90-100 (Good) | 🟠 50-89 (Needs Improvement) | 🔴 0-49 (Poor) 📄 Full report in artifacts 📦 Bundle Size AnalysisTotal Build Size: 172M 📦 Top 5 Largest JavaScript Files:
🎨 Top 5 Largest CSS Files:
♿ Accessibility Testing✅ Accessibility scan completed!
📊 Build Details
💡 Pro Tip: Only one build was needed for all these checks - saving CI/CD minutes! 🎯 |
|
Caution Review failedThe pull request is closed. Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings. WalkthroughAdds a new public "Web Server" extension entry with extensionId Changes
Sequence Diagram(s)(omitted — change does not introduce multi-component control flow requiring a sequence diagram) Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary
This PR adds a new "Web Server" extension to the extension library, which complements the scratch-vm implementation referenced in the linked issues.
Issues Found
- Critical: Missing
insetIconURLproperty that could cause UI rendering issues - Minor: Grammar error in TODO comment
Overall Assessment
The extension addition follows the correct pattern used by other extensions in the library. Once the missing insetIconURL property is added, this should integrate properly with the existing extension system. The use of the 'ob' tag correctly identifies this as an OmniBlocks-specific extension.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
| { | ||
| name: 'Web Server', | ||
| extensionId: 'server', | ||
| collaborator: 'LibreKitten', | ||
| // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for | ||
| // LibreKitten. | ||
| iconURL: customExtensionIcon, | ||
| description: ( | ||
| <FormattedMessage | ||
| defaultMessage="Build a web server that can host an API and simple websites." | ||
| description="Description for the 'Web Server' extension" | ||
| id="omni.extension.server.description" | ||
| /> | ||
| ), | ||
| tags: ['ob'], | ||
| featured: true | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛑 Logic Error: Missing insetIconURL property for Web Server extension. All other extensions in the library include both iconURL and insetIconURL properties for proper display in different UI contexts. Without insetIconURL, the extension may not render correctly in compact views or cause runtime errors when the UI attempts to access this property.
| { | |
| name: 'Web Server', | |
| extensionId: 'server', | |
| collaborator: 'LibreKitten', | |
| // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for | |
| // LibreKitten. | |
| iconURL: customExtensionIcon, | |
| description: ( | |
| <FormattedMessage | |
| defaultMessage="Build a web server that can host an API and simple websites." | |
| description="Description for the 'Web Server' extension" | |
| id="omni.extension.server.description" | |
| /> | |
| ), | |
| tags: ['ob'], | |
| featured: true | |
| }, | |
| { | |
| name: 'Web Server', | |
| extensionId: 'server', | |
| collaborator: 'LibreKitten', | |
| // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for | |
| // LibreKitten. | |
| iconURL: customExtensionIcon, | |
| insetIconURL: customExtensionIcon, | |
| description: ( | |
| <FormattedMessage | |
| defaultMessage="Build a web server that can host an API and simple websites." | |
| description="Description for the 'Web Server' extension" | |
| id="omni.extension.server.description" | |
| /> | |
| ), | |
| tags: ['ob'], | |
| featured: true | |
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It works fine.
| // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for | ||
| // LibreKitten. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Grammar error in TODO comment. The comment contains incomplete text "the he made one for" which should be corrected for clarity.
| // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for | |
| // LibreKitten. | |
| // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the one he made for | |
| // LibreKitten. |
🎬 ULTRA Visual Regression Test ResultsHi @someCatInTheWorld! Tested across 9 combinations (3 platforms × 3 browsers). 8/9 completed. 📊 Test Matrix Summary
|
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 3.94% (36271 pixels)
Advanced Settings
✅ No pixel difference detected.
Ubuntu + WebKit
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
✅ No pixel difference detected.
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.10% (151072 pixels)
Advanced Settings
✅ No pixel difference detected.
Windows + Chrome
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 41.22% (379852 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 3.97% (36626 pixels)
Advanced Settings
✅ No pixel difference detected.
Windows + Firefox
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.04% (337 pixels)
Player View
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.00% (15 pixels)
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.56% (42054 pixels)
Advanced Settings
✅ No pixel difference detected.
Windows + WebKit
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 1.56% (57371 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.14% (152699 pixels)
Advanced Settings
✅ No pixel difference detected.
Apple + Chrome
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 21.43% (197508 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 3.99% (36750 pixels)
Advanced Settings
✅ No pixel difference detected.
Apple + Firefox
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.24% (2198 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.61% (42447 pixels)
Advanced Settings
✅ No pixel difference detected.
Apple + WebKit
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.13% (4849 pixels)
Player View
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 2.94% (194492 pixels)
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.39% (161905 pixels)
Advanced Settings
✅ No pixel difference detected.
📦 Resources
|
@coderabbitai Read the discussion and code of OmniBlocks/scratch-vm#48. What do you think of it? (I'm asking here because I think the two different wascawwy wabbits have different personalities.) |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 254919 🏁 Script executed: Length of output: 114186 🏁 Script executed: Length of output: 207065
What I like in VM#48
How that impacts this GUI PR (
Tiny future niceties (non-blocking)
Verdict
🧠 Learnings used💡 Use |
|
@OmniBlocks/coders @OmniBlocks/ai @coderabbitai What do you think of this? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 17763 🏁 Script executed: Length of output: 97 🏁 Script executed: Length of output: 2206
What's working: The blocker: 🚨 Quick fix: {
"omni.extension.server.description": "Build a web server that can host an API and simple websites."
}Minor polish (optional): name: (
<FormattedMessage
defaultMessage="Web Server"
description="Name for the 'Web Server' extension"
id="omni.extension.server.name"
/>
),Verdict: Fix the missing i18n key, then you're good to merge! The VM integration looks clean and the structure matches the built-in extension pattern perfectly. 🐇✨ 🧠 Learnings used💡 Use |
|
@someCatInTheWorld go ahead use it but maybe make it blue |
Thanks @ampeletrecuted!
🤖 Auto-Component Test Results🎉 No new UI components detected!This PR doesn't add any new buttons, menus, or clickable components. Triggered by @someCatInTheWorld • Commit |
🎉 MEGA PR Test & Analysis Complete!Hi @someCatInTheWorld! Your PR has been fully tested and analyzed! 🚀✨ 🌍 Test DeploymentLive Preview: https://OmniBlocks.github.io/scratch-gui/someCatInTheWorld/758/ 🧪 Test ResultsESLint: ✅ All checks passed! Unit Tests: ✅
Integration Tests: ❌
📄 Full test outputs available in artifacts 🔦 Performance Audit (Lighthouse)✅ Audit completed successfully! 📊 Lighthouse Scores:
⚡ Core Web Vitals:
🟢 90-100 (Good) | 🟠 50-89 (Needs Improvement) | 🔴 0-49 (Poor) 📄 Full report in artifacts 📦 Bundle Size AnalysisTotal Build Size: 172M 📦 Top 5 Largest JavaScript Files:
🎨 Top 5 Largest CSS Files:
♿ Accessibility Testing✅ Accessibility scan completed!
📊 Build Details
💡 Pro Tip: Only one build was needed for all these checks - saving CI/CD minutes! 🎯 |
🎬 ULTRA Visual Regression Test ResultsHi @someCatInTheWorld! Tested across 9 combinations (3 platforms × 3 browsers). 8/9 completed. 📊 Test Matrix Summary
|
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.02% (37030 pixels)
Advanced Settings
✅ No pixel difference detected.
Ubuntu + WebKit
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 1.53% (56266 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 37.59% (1385805 pixels)
Advanced Settings
✅ No pixel difference detected.
Windows + Chrome
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 41.48% (382304 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.06% (37385 pixels)
Advanced Settings
✅ No pixel difference detected.
Windows + Firefox
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.10% (913 pixels)
Player View
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 2.94% (48207 pixels)
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.61% (42461 pixels)
Advanced Settings
✅ No pixel difference detected.
Windows + WebKit
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.95% (34867 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.17% (153610 pixels)
Advanced Settings
✅ No pixel difference detected.
Apple + Chrome
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 25.03% (230722 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.07% (37535 pixels)
Advanced Settings
✅ No pixel difference detected.
Apple + Firefox
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 3.75% (34602 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.65% (42833 pixels)
Advanced Settings
✅ No pixel difference detected.
Apple + WebKit
Editor Initial
✅ No pixel difference detected.
Blocks Workspace
✅ No pixel difference detected.
Stage Sprites
✅ No pixel difference detected.
Code Tab
✅ No pixel difference detected.
Costumes Tab
✅ No pixel difference detected.
Sounds Tab
✅ No pixel difference detected.
Songs Tab
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 0.01% (517 pixels)
Player View
✅ No pixel difference detected.
Extension Library
| Base | PR | Diff |
|---|---|---|
![]() | ![]() | ![]() |
Diff: 4.43% (163294 pixels)
Advanced Settings
✅ No pixel difference detected.
📦 Resources
|
@coderabbitai It's been merged! |
|
Tip For best results, initiate chat on the files or code changes.
The Server extension is now live in the library—users can start building web servers and APIs with OmniBlocks blocks! Great work getting the i18n keys sorted and the integration cleaned up. Hope the blue-tinted icon from Amp looks sharp in the extensions grid! Happy shipping! ✨ 🧠 Learnings usedIf you found this review helpful, would you consider giving us a shout-out on X? Thank you for using CodeRabbit! 💡 Use |
|
WAIT I LOGGED IN AT THE WRONG TIME LIKE AT THEEEE WORST TIME |
|
@coderabbitai NOW HOW ARE WE GONNA DEAL WITH THE CONFLICTS IN #385 !!!!!!!!!!! |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 1288 🏁 Script executed: Length of output: 39026 🏁 Script executed: Length of output: 55
The Situation 📊Good news: GitHub says PR The overlap: Both PRs modified
Where the Conflict Lives 🎯In the main extension array, here's where things overlap: // PR `#758` added (now in main):
{
name: 'Web Server',
extensionId: 'server',
// ... server extension config
},
{
name: 'Translate', // existing
// ...
}
// PR `#385` wants to add:
{
name: 'JavaScript V2',
extensionId: 'SPjavascriptV2',
// ... JS V2 config
},
{
name: 'TurboWarp Blocks', // (renamed from APP_NAME)
// ...
}Resolution Strategy 🛠️Option 1: Merge main into your branch (recommended) git checkout extensions
git fetch origin
git merge origin/mainThen manually resolve
Option 2: Rebase your branch (cleaner history) git checkout extensions
git fetch origin
git rebase origin/mainThen resolve the same way. What the Final Array Should Look Like 🎨export default [
// ... all existing extensions ...
{
name: <FormattedMessage id="ob.jsv2" defaultMessage="JavaScript V2" />,
extensionId: 'SPjavascriptV2',
// ... your JS V2 config
},
{
name: 'Web Server', // <-- from PR `#758`
extensionId: 'server',
// ... server config
},
{
name: <FormattedMessage id="tw.twExtension.name" defaultMessage="TurboWarp Blocks" />,
// ... TW Blocks config
},
{
name: <FormattedMessage id="gui.extension.translate" />,
// ... Translate config
}
];
// Then your gallery items (galleryLoading, galleryMore, galleryError, galleryLoadingOB, etc.)Quick Fix Command 🚀Want me to generate the exact resolved file content for you? Just say the word and I'll paste the complete merged The conflict is totally manageable—just need to position both new extensions in the array and keep all the gallery restructuring you did. You got this! 💪✨ 🧠 Learnings used💡 Use |
Whoops, sorry about that! I didn't mean to cause conflicts with any PRs. 😅 |
|
Tip For best results, initiate chat on the files or code changes.
🧠 Learnings used💡 Use |
|
no worries i should've said this earlier but the fact i was gone for hours and the first time i log in.... IT'S LITERALLY EXACTLY WHEN THIS IS MERGED WAHH LOL @coderabbitai |
|
Tip For best results, initiate chat on the files or code changes.
The universe really said "hey void, watch this" and hit the merge button right as you opened GitHub. 🎯😂 But hey, at least GitHub says it's auto-mergeable, so the conflict resolution should be painless! Just need to line up both extensions in the array and you're golden. Still... that timing though. Chef's kiss level of unfortunate. 🐇✨ 🧠 Learnings used💡 Use |
































































































Resolves
OmniBlocks/scratch-vm#28
Proposed Changes
Adds server extension to extension library.
Reason for Changes
Complements OmniBlocks/scratch-vm#48
Test Coverage
N/A
Browser Coverage
Check the OS/browser combinations tested (At least 2)
Mac
Windows
Chromebook
iPad
Android Tablet
P.S: @ampelectrecuted Can I reuse the extension cover you made for LibreKitten?